//map 数据结构

// let obj = {}
// obj[true] = "value"
// obj[123] = 1
// obj[{a:1}] = "value"
// obj['[object Object ]'] = "value"
// console.log(obj)
// {
//     true: 'value',
//     '[object Object]': 'value',
//     '[object Object ]': 'value'
// }
// console.log(Object.keys(obj))//[ '123', 'true', '[object Object]', '[object Object ]' ]
//对象的建只要不是字符串类型都会转化为字符串(进行toString)，每一个对象toString的结构默认都是一样的，并不能进行区分。为了解决这个问题，就有了map这样的数据结构，
//map数据结构才是严格意义上的键值对集合，用来映射两个任意类型集合对应的关系。

let map = new Map ()
let tom = { name: 'jack'}
map.set(tom,20)
map.set(true,1).set("num","123")
// console.log(map.has(tom))
// console.log(map.delete(tom))
// map.clear()
map.forEach((value,key) =>{
    console.log(value,key)
})